CopyOnWriteArrayList — это потокобезопасная реализация List, в которой изменения происходят на копии массива.
🔹 Чтение (get, contains) выполняется без блокировок, т.к. работает с неизменяемым массивом. 🔹 Запись (add, set, remove) создает новую копию массива, где применяются изменения, а затем заменяет старый массив.
✔️ Плюсы
— Отлично подходит для сценариев, где чтение преобладает над записью. — Не требует внешней синхронизации.
❌ Минусы
— При больших объемах данных запись дорогая по памяти и производительности. — Итераторы работают с старой версией массива, поэтому изменения после их создания не видны (fail-safe).
CopyOnWriteArrayList — это потокобезопасная реализация List, в которой изменения происходят на копии массива.
🔹 Чтение (get, contains) выполняется без блокировок, т.к. работает с неизменяемым массивом. 🔹 Запись (add, set, remove) создает новую копию массива, где применяются изменения, а затем заменяет старый массив.
✔️ Плюсы
— Отлично подходит для сценариев, где чтение преобладает над записью. — Не требует внешней синхронизации.
❌ Минусы
— При больших объемах данных запись дорогая по памяти и производительности. — Итераторы работают с старой версией массива, поэтому изменения после их создания не видны (fail-safe).
Bitcoin mining is the process of adding new transactions to the Bitcoin blockchain. It’s a tough job. People who choose to mine Bitcoin use a process called proof of work, deploying computers in a race to solve mathematical puzzles that verify transactions.To entice miners to keep racing to solve the puzzles and support the overall system, the Bitcoin code rewards miners with new Bitcoins. “This is how new coins are created” and new transactions are added to the blockchain, says Okoro.
Библиотека собеса по Java | вопросы с собеседований from jp